﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.Marketing.Data.Access;
using Chilis.Marketing.Business.Entity;
using System.Data;

namespace Chilis.Marketing.Business.Logic
{
    public class BLCampanha
    {
        #region ATRIBUTOS

        private DACampanha campanhaDA;

        #endregion

        #region CONSTRUCTOR

        public BLCampanha()
        {
            this.campanhaDA = new DACampanha();
        }

        #endregion

        #region PROPIEDADES
        #endregion

        #region METODOS



        /// <summary>
        /// Método              : insertarCampanha
        /// Descripción         : Inserta Campanha en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="campanhaBE">Entidad que representa la Campanha</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool insertarCampanha(BECampanha campanhaBE)
        {
            bool respuesta = false;
            try
            {
                int? IdCampanha = campanhaDA.insertarCampanha(campanhaBE, true);
                if (IdCampanha.HasValue && IdCampanha.Value > 0)
                {
                    respuesta = true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : modificarCampanha
        /// Descripción         : Modifica Campaña en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="campanhaBE">Entidad que representa la Campaña</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool modificarCampanha(BECampanha campanhaBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = campanhaDA.modificarCampanha(campanhaBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : eliminarCampanha
        /// Descripción         : Elimina Campaña en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="campanhaBE">Entidad que representa la Campaña</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool eliminarCampanha(BECampanha campanhaBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = campanhaDA.eliminarCampanha(campanhaBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : actualizarEstadoCampanha
        /// Descripción         : Actualiza Estado de la Campaña en la BD
        /// Fecha Creacion      : 25/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 25/03/2012
        /// </summary>
        /// <param name="campanhaBE">Entidad que representa la Campaña</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool actualizarEstadoCampanha(BECampanha campanhaBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = campanhaDA.actualizarEstadoCampanha(campanhaBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }


        /// <summary>
        /// Método              : obtenerCampanhaPorId
        /// Descripción         : Obtiene la Entidad Campanha
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="idCampanha">Id Campanha</param>
        /// <returns>Retorna el Objeto que representa la Entidad Campanha</returns>
        public BECampanha obtenerCampanhaPorId(int idCampanha)
        {
            return campanhaDA.obtenerCampanhaPorId(idCampanha);
        }

        /// <summary>
        /// Método              : obtenerCampanhaPorActividadId
        /// Descripción         : Obtiene la Entidad Campanha
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="idActividad">Id Actividad</param>
        /// <returns>Retorna el Objeto que representa la Entidad Campanha</returns>
        public BECampanha obtenerCampanhaPorActividadId(int idActividad)
        {
            return campanhaDA.obtenerCampanhaPorActividadId(idActividad);
        }

        /// <summary>
        /// Método              : obtenerCampanhaPorArteId
        /// Descripción         : Obtiene la Entidad Arte
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="idArte">Id Arte</param>
        /// <returns>Retorna el Objeto que representa la Entidad Arte</returns>
        public BECampanha obtenerCampanhaPorArteId(int idArte)
        {
            return campanhaDA.obtenerCampanhaPorArteId(idArte);
        }

        /// <summary>
        /// Método              : obtenerCampanhaPorPruebaPilotoId
        /// Descripción         : Obtiene la Entidad Prueba Piloto
        /// Fecha Creacion      : 01/04/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 01/04/2012
        /// </summary>
        /// <param name="idPruebaPiloto">Id Prueba Piloto</param>
        /// <returns>Retorna el Objeto que representa la Entidad Campanha</returns>
        public BECampanha obtenerCampanhaPorPruebaPilotoId(int idPruebaPiloto)
        {
            return campanhaDA.obtenerCampanhaPorPruebaPilotoId(idPruebaPiloto);
        }

        /// <summary>
        /// Función             : buscarCampanhas
        /// Descripción         : Busca las Campañas de acuerdo a los filtros configurados
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa la Campaña</param>
        /// <returns>Listado de Cargos de acuerdo al filtro especificado</returns>
        public DataTable buscarCampanhas(BECampanha filtro)
        {
            return campanhaDA.buscarCampanhas(filtro);
        }

        /// <summary>
        /// Función             : obtenerActividadesPorIdCampanha
        /// Descripción         : Obtiene las Actividades de acuerdo a los filtros configurados
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa la Actividad</param>
        /// <returns>Listado de Actividades de acuerdo al filtro especificado</returns>
        public DataTable obtenerActividadesPorIdCampanha(int idCampanha)
        {
            return campanhaDA.obtenerActividadesPorIdCampanha(idCampanha);
        }

        /// <summary>
        /// Función             : obtenerArtesPorIdCampanha
        /// Descripción         : Busca los Artes de acuerdo a los filtros configurados
        /// Fecha Creacion      : 30/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 30/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa el Arte</param>
        /// <returns>Listado de Artes de acuerdo al filtro especificado</returns>
        public DataTable obtenerArtesPorIdCampanha(int idCampanha)
        {
            return campanhaDA.obtenerArtesPorIdCampanha(idCampanha);
        }

        /// <summary>
        /// Función             : obtenerPruebasPilotoPorIdCampanha
        /// Descripción         : Busca las Pruebas Piloto de acuerdo a los filtros configurados
        /// Fecha Creacion      : 01/04/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 01/04/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa la Prueba Piloto</param>
        /// <returns>Listado de Artes de acuerdo al filtro especificado</returns>
        public DataTable obtenerPruebasPilotoPorIdCampanha(int idCampanha)
        {
            return campanhaDA.obtenerPruebasPilotoPorIdCampanha(idCampanha);
        }

        #endregion
    }
}
